#ifndef GameObject_H
#define GameObject_H
#include <map>

using namespace std;
namespace ManchyGL
{
	class Component;
	class Transform;
	class Renderer;
	class Camera;
	class GameObject
	{
	private:
		const char* _name;
		map<int, Component*> *_keyToComponent;
	public:
		GameObject();
		GameObject(const char* name);
		~GameObject();
		void SetName(const char* name);
		const char* GetName();
		bool CompareName(const char* name);
		void AddComponent(int componentType, Component* component);
		Component* GetComponent(int componentType);
		Transform* GetTransform();
		Renderer* GetRenderer();
		Camera* GetCamera();
	};
}
#endif